#include "thread.hpp"
//version 2 test
struct ThreadData
{
    ThreadData(int begin,int end):_begin(begin),_end(end)
    {

    }
    int _begin;
    int _end;
};
int main()
{
    //传多个参数
    // ThreadModule::Thread<ThreadData> t([](ThreadData t){
    //     for(int i = t._begin;i<=t._end;i++)
    //     {
    //         std::cout<<"hello world: "<<i<<std::endl;
    //         sleep(1);
    //     }
    // },ThreadData(2,6));
    // t.Start();
    // t.Join();
    //传参
    // ThreadModule::Thread<int> t(
    //     [](int end)
    //     {         
    //         for (int i = 1; i <= end; i++)
    //         {
    //             std::cout << "hello world: " << i << std::endl;
    //             sleep(1);
    //         }
    //     },5);
    //std::cout << "create new thread" << std::endl;

    // t.Start();
    // //sleep(3);
    // //t.Stop();
    // t.Join();
    // std::cout << "join new thread" << std::endl;
    return 0;
}

// version 1 test
//  int main()
//  {
//      ThreadModule::Thread t(
//          [](){
//          while(true)
//          {
//              std::cout<<"hello world"<<std::endl;
//              sleep(1);
//          }

//     });
//     std::cout<<"create new thread"<<std::endl;
//     t.Start();
//     sleep(3);
//     t.Stop();
//     t.Join();
//     std::cout<<"join new thread"<<std::endl;
//     return 0;
// }